昨天聊到精煉(Refinement)主要目的是要透過溝通建立共同理解,以作出好的決策。也提到估算的主要目的就是揭露雙方的認知落差。
而在精煉活動中,常用到的驗收條件(Acceptance Criteria),也是協助參與者溝通的工具,藉由一條條列出完成該待辦事項後會需要驗收的條件,逐漸勾勒出這個待辦事項的邊界為何。
常用的寫法會是 Given-When-Then,是一個初期剛導入寫驗收條件時一個滿好的練習方式,即:
Given:在什麼條件下,
When:當誰做了某件事情的時候,
Then:接著預期會發生什麼事
這個寫法的好處是能夠銜接 ATDD,去寫對應的驗收測試。
但在實務上,如果團隊是在白板上進行精煉活動,為了增加效率,在彼此脈絡幾乎相當的情況,都會省略 Given 與 When,只寫預期會發生什麼事,久而久之也就習慣了。
但並不是每次討論成員之間彼此脈絡都如此對等,這後就建議在對話中補上關鍵實例(Key Example)。也就是口頭以一個實際的會發生的案例來對其彼此的想像,以避免有認知落差。這個實際就是會非常具體的聊到怎樣的使用者做了什麼動作,然後我們預期會看到哪些具體的畫面與資料,就彷彿在用嘴巴寫一個驗收測試一樣。如果是使用白板進行活動,也可以佐以圖畫去表示。
透過這樣的關鍵實例,就能作為揭露彼此脈絡認知落差的工具,讓我們在對其這張待辦事項的邊界時,更加明確。